
#include <iostream>
#include <typeinfo>
using namespace std;


/*
// A function internal can not have a function.
void foo( ) {
	int a = 10;
	cout << 2*a << endl;
	void bar( ){}		err
}
*/


/*
// A function han have a class
int a;
void foo( int b ) {
	int c;
	class A{
	public:
		void bar( int d ) {
			a = 10;
//			b = 20;		err
//			c = 30;		err
			d = 40;
		}
	};
}
*/


// The member function can also have a function.
int a;
class A {
public:
	void foo( int b  ) {
		class B {
		public:
			void bar( int c ) {
				a = 10;
//				b = 20;		err
				c = 30;
				d = 40;
//				e = 50;		err
			}
		};
	}
private:
	static int d;
	int e;
};
int A::d;


int main( void ) {

	return 0;
}

